Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit 3d60f7f7967d390c32ea7909697ce7dfd86f1a07


Parents : e1de656
Author : Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-05-10T06:17:30-05:00

fix(docker): add python3 to build-frontend stage for docs build; add i18n for map drag-drop

Changes
Diff

diff --git a/Dockerfile b/Dockerfile
index 5f1d7775..c684069d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -16,7 +16,7 @@ ARG PYTHON_HASH=sha256:dd4d2bd5b53d9b25a51da13addf2be586beebd5387e289e798e4083d9
# ---- STAGE 1: Frontend Build ----
FROM --platform=linux/amd64 ${NODE_IMAGE}@${NODE_HASH} AS build-frontend
WORKDIR /src
-RUN apk add --no-cache git
+RUN apk add --no-cache git python3
COPY package.json pnpm-lock.yaml vite.config.js ./
COPY patches ./patches
COPY scripts/fetch-micron-wasm.mjs scripts/fetch-micron-wasm.mjs

diff --git a/Dockerfile.hardened b/Dockerfile.hardened
index 72e56ffa..9078f46a 100644
--- a/Dockerfile.hardened
+++ b/Dockerfile.hardened
@@ -13,7 +13,7 @@ ARG PYTHON_RUNTIME_IMAGE=cgr.dev/chainguard/python:latest-dev
FROM --platform=linux/amd64 ${NODE_IMAGE} AS build-frontend
USER root
WORKDIR /src
-RUN apk add --no-cache git
+RUN apk add --no-cache git python3
COPY package.json pnpm-lock.yaml vite.config.js ./
COPY patches ./patches
COPY scripts/fetch-micron-wasm.mjs scripts/fetch-micron-wasm.mjs

diff --git a/meshchatx/src/frontend/components/map/MapPage.vue b/meshchatx/src/frontend/components/map/MapPage.vue
index 8ebe60fa..5e8dd7b6 100644
--- a/meshchatx/src/frontend/components/map/MapPage.vue
+++ b/meshchatx/src/frontend/components/map/MapPage.vue
@@ -4341,7 +4341,12 @@ export default {
const geoFiles = files.filter((f) => {
const name = f.name.toLowerCase();
- return name.endsWith(".geojson") || name.endsWith(".json") || name.endsWith(".kml") || name.endsWith(".kmz");
+ return (
+ name.endsWith(".geojson") ||
+ name.endsWith(".json") ||
+ name.endsWith(".kml") ||
+ name.endsWith(".kmz")
+ );
});
if (!geoFiles.length) {
ToastUtils.warning(this.$t("map.drop_no_geo_files"));

diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json
index 53c4df2b..8e033eb3 100644
--- a/meshchatx/src/frontend/locales/de.json
+++ b/meshchatx/src/frontend/locales/de.json
@@ -1131,7 +1131,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "Kartendatei hier ablegen",
+ "drop_no_geo_files": "Keine GeoJSON-, KML- oder KMZ-Dateien erkannt."
},
"interface": {
"disable": "Deaktivieren",

diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json
index 170c9314..d36039ce 100644
--- a/meshchatx/src/frontend/locales/es.json
+++ b/meshchatx/src/frontend/locales/es.json
@@ -1079,7 +1079,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "Suelta el archivo del mapa aquí",
+ "drop_no_geo_files": "No se detectaron archivos GeoJSON, KML o KMZ."
},
"interface": {
"disable": "Inhabilitación",

diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json
index 9cae2533..701c1256 100644
--- a/meshchatx/src/frontend/locales/fr.json
+++ b/meshchatx/src/frontend/locales/fr.json
@@ -1079,7 +1079,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "Déposez le fichier carte ici",
+ "drop_no_geo_files": "Aucun fichier GeoJSON, KML ou KMZ détecté."
},
"interface": {
"disable": "Désactiver",

diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json
index 50dc8568..e483eaf3 100644
--- a/meshchatx/src/frontend/locales/it.json
+++ b/meshchatx/src/frontend/locales/it.json
@@ -1131,7 +1131,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "Rilascia il file della mappa qui",
+ "drop_no_geo_files": "Nessun file GeoJSON, KML o KMZ rilevato."
},
"interface": {
"disable": "Disabilita",

diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json
index 6ad1eace..931f0559 100644
--- a/meshchatx/src/frontend/locales/nl.json
+++ b/meshchatx/src/frontend/locales/nl.json
@@ -1079,7 +1079,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "Sleep kaartbestand hierheen",
+ "drop_no_geo_files": "Geen GeoJSON-, KML- of KMZ-bestanden gedetecteerd."
},
"interface": {
"disable": "Uitschakelen",

diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json
index 0ccdab3e..5f95c08c 100644
--- a/meshchatx/src/frontend/locales/ru.json
+++ b/meshchatx/src/frontend/locales/ru.json
@@ -1131,7 +1131,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "Перетащите файл карты сюда",
+ "drop_no_geo_files": "Не обнаружено файлов GeoJSON, KML или KMZ."
},
"interface": {
"disable": "Выключить",

diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json
index c9fa0262..76b32b29 100644
--- a/meshchatx/src/frontend/locales/zh.json
+++ b/meshchatx/src/frontend/locales/zh.json
@@ -1079,7 +1079,9 @@
"vector_import_ok": "Imported {count} feature(s).",
"vector_import_empty": "No features found in file.",
"vector_import_failed": "Could not read vector file.",
- "vector_export_ok": "Export started."
+ "vector_export_ok": "Export started.",
+ "drop_geo_files": "将地图文件拖放到此处",
+ "drop_no_geo_files": "未检测到 GeoJSON、KML 或 KMZ 文件。"
},
"interface": {
"disable": "禁用",


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────